public virtual class Source extends AtomBase {
	
	public String generator { get; set; }
	public String icon { get; set; }
	public String logo { get; set; }
	public String rights { get; set; }
	public String subtitle { get; set; }
	
	public Source() { 
	}
	public Source(XmlStreamReader reader) {
		 super(reader);
	} 
	
	public Source(String localName) {
		//super(localName);
	}
	
	public override String toAPP() {
		String output = '<source>\n';
		for (Person p : getAuthors())  { 
			output += p.toApp();
		}
		for (Category c : getCategories()) {
			output += c.toAPP();
		}
		for (Person p : getContributors()) {
			output += p.toAPP();
		}
		if (generator != null) output += '<generator>' + generator + '</generator>\n';
		if (icon != null) output += '<icon>' + icon + '</icon>\n';
		if (getId() != null) output += '<id>' + getId() + '</id>\n';
		if (logo != null) output += '<logo>' + logo + '</logo>\n';
		if (rights != null) output += '<rights>' + rights + '</rights>\n';
		if (subtitle != null) output += '<subtitle>' + subtitle + '</subtitle>\n';
		if (getTitle() != null) output += '<title>' + getTitle() + '</title>\n';
		if (getUpdated() != null) output += '<updated>' + getUpdated() + '</updated>\n';
		output += '</source>\n';
		return output;
	}
}